Programming in Paragon
نویسندگان
چکیده
This tutorial introduces Paragon, a programming language which allows programmers to express, as an integral part of the code, security concerns about the data that is manipulated. The Paragon compiler will only allow a program to be run if it is guaranteed to respect the security policy declared for its data. In this sense Paragon promises that well-typed programs are secure by construction. But what security policies might we want for our data? Access control mechanisms are perhaps one obvious way to control security, and Java (on which Paragon is built) includes APIs to express fine-grained access to security-sensitive resources. But access controls, while useful, are often a poor tool to express the end-to-end security requirements that we actually desire from applications. For example, consider an “app” which sends you special offers from your local florists in advance of the birthdays of your friends. To function the app needs access to at least your calendar (to retrieve birthdays), the network (to retrieve the latest special offers from florists) and your geolocation (to determine which florists are located nearby). But any app with these access permissions can freely send the whole of your calendar or your location to anywhere on the net. What we want is to grant access (since it is necessary) but limit the information flows. In this case we want to limit the information flows from the calendar to the network despite granting access to both. Paragon allows the programmer to express such concerns directly in the program, by labelling data with policies describing where, and under what conditions, the data is permitted to flow. Moreover, the Paragon compiler checks, at compile time, that the intended information flows are never violated. This helps programmers check their own code for information flow errors, and can be used to ensure that third-party code respects the policy of the data to which it is given access.
منابع مشابه
Speci cation and Analysis of Real-Time Systems with PARAGON
This paper describes a methodology for the speci cation and analysis of distributed real-time systems using the toolset called PARAGON. PARAGON is based on the Communicating Shared Resources paradigm, which allows a real-time system to be modeled as a set of communicating processes that compete for shared resources. PARAGON supports both visual and textual languages for describing real-time sys...
متن کاملKindle free e book Mark Steven Sherman Paragon: A Language Using Type Hierarchies For The Specification, Implementation, And Selection Of Abstract Data Types rb Play Books Download epubace.ru
Paragon: A Language Using Type Hierarchies for the Specification, Implementation, and Selection of Abstract Data Types (Lecture Notes in Computer Science) . Abstraction hierarchies : a model of. HathiTrust Digital Library Paragon A Language Using Type Hierarchies for the Specification, Implementation, and Selection of Abstract Data Types (Electronic book text) / Author: Mark . Kindle free e boo...
متن کاملEmulating a Paragon XP/S on a Network of Workstations
Networks of workstations are gaining growing importance in high performance computing. Programming environments like MMK/X [Ste93] or PVM [BDG+91] allow for exploiting the aggregate computational power of coupled workstations. A different approach is to use such local area networks as a development platform for parallel applications which should finally run on multicomputer systems. Therefore a...
متن کاملParagon for Practical Programming with Information-Flow Control
Conventional security policies for software applications are adequate for managing concerns on the level of access control. But standard abstraction mechanisms of mainstream programming languages are not sufficient to express how information is allowed to flow between resources once access to them has been obtained. In practice we believe that such control information flow control is needed to ...
متن کاملSpecification and Analysis of Real-Time Systems with PARAGON
This paper describes a methodology for the speci cation and analysis of distributed real-time systems using the toolset called PARAGON. PARAGON is based on the Communicating Shared Resources paradigm, which allows a real-time system to be modeled as a set of communicating processes that compete for shared resources. PARAGON supports both visual and textual languages for describing real-time sys...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014